# Contributor: Nathan Johnson <nathan@nathanjohnson.info>
# Maintainer: Nathan Johnson <nathan@nathanjohnson.info>
pkgname=rabbitmq-server
pkgver=3.12.10
pkgrel=0
pkgdesc="open source multi-protocol messaging broker"
url="https://www.rabbitmq.com/"
arch="noarch !x86 !armv7 !armhf" # elixir
license="MPL-1.1"
depends="erlang"
makedepends="
	elixir
	erlang-dev
	gawk
	grep
	libxslt
	py3-simplejson
	python3
	rsync
	socat
	xmlto
	zip
	"
install="$pkgname.pre-install $pkgname.post-deinstall"
pkgusers="rabbitmq"
pkggroups="rabbitmq"
subpackages="$pkgname-doc $pkgname-openrc"
source="
	https://github.com/rabbitmq/rabbitmq-server/releases/download/v$pkgver/rabbitmq-server-$pkgver.tar.xz
	rabbitmq-server.initd
	rabbitmq-server.logrotate
	"
options="!check" # test suite broken

# secfixes:
#   3.9.1-r0:
#     - CVE-2021-32719
#   3.7.17-r0:
#     - CVE-2015-9251
#     - CVE-2017-16012
#     - CVE-2019-11358

prepare() {
	default_prepare
	sed -e 's|@RABBITMQ_USER@|rabbitmq|g' \
		-e 's|@RABBITMQ_GROUP@|rabbitmq|g' \
		-e 's|@STDOUT_STDERR_REDIRECTION@||' \
		-i scripts/rabbitmq-script-wrapper
}

build() {
	make dist manpages PYTHON=python3
}

package() {
	make install install-bin install-man \
		DESTDIR="$pkgdir" \
		PREFIX=/usr \
		RMQ_ROOTDIR="/usr/lib/rabbitmq" \
		MANDIR=/usr/share/man \
		PYTHON=python3

	mkdir -p "$pkgdir"/var/lib/rabbitmq/mnesia
	mkdir -p "$pkgdir"/var/log/rabbitmq

	#Copy all necessary lib files etc.
	install -p -m755 -D "$builddir"/scripts/rabbitmq-server.ocf \
		"$pkgdir"/usr/lib/ocf/resource.d/rabbitmq/rabbitmq-server
	install -p -m644 -D "$srcdir/"$pkgname.logrotate \
		"$pkgdir"/etc/logrotate.d/rabbitmq-server
	install -m755 -D "$srcdir"/$pkgname.initd \
		"$pkgdir"/etc/init.d/$pkgname
	mkdir -p "$pkgdir"/usr/sbin

	# This is lifted / adapted from the official upstream spec file.
	# I'd prefer a patch file, but this is probably a little easier
	# to manage since this is how they do it upstream.  inb4eww
	sed -e 's|@SU_RABBITMQ_SH_C@|su rabbitmq -s /bin/sh -c|' \
	< "$builddir"/scripts/rabbitmq-script-wrapper \
	> "$pkgdir"/usr/sbin/rabbitmqctl

	chmod 0755 "$pkgdir"/usr/sbin/rabbitmqctl
	for script in rabbitmq-server rabbitmq-plugins; do
		cp -a "$pkgdir"/usr/sbin/rabbitmqctl \
		   "$pkgdir"/usr/sbin/$script;
	done

	mkdir -p "$pkgdir"/usr/share/doc/"$pkgname"
	cp -a "$builddir"/LICENSE* "$pkgdir"/usr/share/doc/"$pkgname"/
	cp -a "$builddir"/deps/rabbit/docs/* "$pkgdir"/usr/share/doc/"$pkgname"/
	cp -a "$builddir"/deps/rabbitmq_sharding/docs/* "$pkgdir"/usr/share/doc/"$pkgname"/
	chmod 755 "$pkgdir"/var/lib/rabbitmq
	chmod 750 "$pkgdir"/var/lib/rabbitmq/mnesia
	chmod 755 "$pkgdir"/var/log/rabbitmq
	chown -R $pkgusers:$pkggroups "$pkgdir"/var/lib/rabbitmq
	chown -R $pkgusers:$pkggroups "$pkgdir"/var/log/rabbitmq
}

sha512sums="
c9880bcc8a0097c75b260181fff6ae21e300da3e7d8d1d1323122c7a94d0c69a8fcebe4131b4e9db03d416201f3cfe48c4df6e18787eac15e5d238613ab89880  rabbitmq-server-3.12.10.tar.xz
a8bb02a7cae1f8720e5c7aaabfe6a2c0e731cffbe0d8f99bdcb6597daa654dc49e6d41943974601435700cf469eaa8286dc91a3255a6b9023754c3861fbb5cd9  rabbitmq-server.initd
b8655cb048ab3b32001d4e6920bb5366696f3a5da75c053605e9b270e771c548e36858dca8338813d34376534515bba00af5e6dd7b4b1754a0e64a8fb756e3f3  rabbitmq-server.logrotate
"
